#ifndef BASE_COMMAND_H
#define BASE_COMMAND_H

#include <iostream>
using std::ostream;
using std::istream;

namespace mp_base
{
	typedef unsigned int uint;

	class Command
	{
	public:
		Command(){}
		virtual ~Command(){}
		
	protected:
		virtual istream& ParseCmdFromSteam(istream& is){ return is; }

	private:
		/*! Write the command to a stream */
		friend ostream& operator<<(ostream& os, const Command& com)
			{return os;}

		/*! Have the command parse the string */
		friend istream& operator>>(istream& is, Command& com)
			{return com.ParseCmdFromSteam(is);}

	protected:
	};
}

#endif